package br.com.salao.ejb.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.apache.log4j.Logger;

import br.com.salao.entity.GerencEtapaConfigEstabelecimento;

public class GerencEtapasConfEstabDaoImpl {

	private final GenericDao<GerencEtapaConfigEstabelecimento> dao;
	private EntityManager em;
	private Logger logger = Logger.getLogger(DateBusyDaoImpl.class.getName());

	public GerencEtapasConfEstabDaoImpl(EntityManager em) {
		this.em = em;
		dao = new GenericDao<GerencEtapaConfigEstabelecimento>(em, GerencEtapaConfigEstabelecimento.class);
	}

	public GerencEtapaConfigEstabelecimento inserir( GerencEtapaConfigEstabelecimento configEstabelecimento){
		return dao.salvar(configEstabelecimento);
	}

	public GerencEtapaConfigEstabelecimento update(GerencEtapaConfigEstabelecimento configEstabelecimento){
		return dao.update(configEstabelecimento);
	}

	@SuppressWarnings("unchecked")
	public List<GerencEtapaConfigEstabelecimento> buscarGerencEtapaConfigEstabPorIdEstabelecimento(int idEstabelecimento){		

		List<GerencEtapaConfigEstabelecimento> listGerencEtapaConfigEstabelecimento = null;

		try {		
			Query query = em.createQuery("from GerencEtapaConfigEstabelecimento e where e.estabelecimento.id like :idEstabelecimento");
			query.setParameter("idEstabelecimento", idEstabelecimento);
			listGerencEtapaConfigEstabelecimento = (List<GerencEtapaConfigEstabelecimento>) query.getResultList();	

		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getCause());
			logger.error(sb.toString());
			e.printStackTrace();

			listGerencEtapaConfigEstabelecimento = null;

		}
		return listGerencEtapaConfigEstabelecimento;
	}

	public List<GerencEtapaConfigEstabelecimento> buscarGerencEtapaConfigEstabPorIdBairro(int idBairro){		

		List<GerencEtapaConfigEstabelecimento> listGerencEtapaConfigEstabelecimento = null;

		try {		
			Query query = em.createQuery("from GerencEtapaConfigEstabelecimento e where e.estabelecimento.endereco.bairro.id like :idBairro");
			query.setParameter("idBairro", idBairro);
			listGerencEtapaConfigEstabelecimento = (List<GerencEtapaConfigEstabelecimento>) query.getResultList();	

		} catch (Exception e) {

			StringBuffer sb = new StringBuffer();
			sb.append(e.getMessage() + "\n");
			sb.append(e.getCause());
			logger.error(sb.toString());
			e.printStackTrace();

			listGerencEtapaConfigEstabelecimento = null;

		} 
		return listGerencEtapaConfigEstabelecimento;
	}

}
